package com.tom.architect.day19.simple3.facade;

import com.tom.architect.day19.simple3.NYUserSystem;
import com.tom.architect.day19.simple3.QQUserSystem;
import com.tom.architect.day19.simple3.WXUserSystem;
import com.tom.architect.day19.simple3.handler.AbsUserSystemHandler;
import com.tom.architect.day19.simple3.handler.IUserSystem;
import com.tom.architect.day19.simple3.handler.UserInfo;

/**
 * Added by Tom on 2023/12/26.
 * 门面设计模式。
 */
public class UserSystemFacade implements IUserSystem {

    // 第一个要检查的系统
    private AbsUserSystemHandler mFirstSystemHandler;

    public UserSystemFacade() {
        // 存放同类型的对象。
        mFirstSystemHandler = new WXUserSystem();
        QQUserSystem qqUserSystem = new QQUserSystem();
        NYUserSystem nyUserSystem = new NYUserSystem();
        // TODO ,添加系统，在这边添加系统的支持。
        // 责任链。
        mFirstSystemHandler.nextHandler(qqUserSystem);
        qqUserSystem.nextHandler(nyUserSystem);
    }

    @Override
    public UserInfo queryUserInfo(String userName, String userPwd) {
        return mFirstSystemHandler.queryUserInfo(userName, userPwd);
    }

}
